home *** CD-ROM | disk | FTP | other *** search
/ Hardcore Visual Basic 5.0 (2nd Edition) / Hardcore Visual Basic 5.0 - Second Edition (1997)(Microsoft Press).iso / Source / Sieve / SIEVEATL / SIEVE.H < prev    next >
C/C++ Source or Header  |  1996-10-29  |  2KB  |  53 lines

  1. // Sieve.h : Declaration of the CSieveATL
  2. #include "resource.h"       // main symbols
  3.  
  4. const short PRIME_MAX = 32767;
  5.  
  6. // CSieveATL
  7.  
  8. class CSieveATL :
  9.     public CComDualImpl<ICSieveATL, &IID_ICSieveATL, &LIBID_SIEVEATLLib>,
  10.     public ISupportErrorInfo,
  11.     public CComObjectRoot,
  12.     public CComCoClass<CSieveATL,&CLSID_CSieveATL>
  13. {
  14. public:
  15.     CSieveATL();
  16.     ~CSieveATL();
  17.  
  18. BEGIN_COM_MAP(CSieveATL)
  19.     COM_INTERFACE_ENTRY(IDispatch)
  20.     COM_INTERFACE_ENTRY(ICSieveATL)
  21.     COM_INTERFACE_ENTRY(ISupportErrorInfo)
  22. END_COM_MAP()
  23. //DECLARE_NOT_AGGREGATABLE(CSieveATL) 
  24. // Remove the comment from the line above if you don't want your object to 
  25. // support aggregation.  The default is to support it
  26.  
  27. DECLARE_REGISTRY(CSieveATL, _T("SieveATLSvr.CSieaveATL.1"), _T("ShortCutSvr.CShortCut"), IDS_CSIEVEATL_DESC, THREADFLAGS_BOTH)
  28.  
  29. // ISupportsErrorInfo
  30.     virtual HRESULT STDMETHODCALLTYPE
  31.         InterfaceSupportsErrorInfo(REFIID riid);
  32.  
  33. // ICSieveATL
  34. public:
  35.     virtual HRESULT STDMETHODCALLTYPE
  36.         get_NextPrime(short * piRet);
  37.     virtual HRESULT STDMETHODCALLTYPE
  38.         get_MaxPrime(short * piRet);
  39.     virtual HRESULT STDMETHODCALLTYPE
  40.         put_MaxPrime(short i);
  41.     virtual HRESULT STDMETHODCALLTYPE
  42.         get_Primes(short * piRet);
  43.     virtual HRESULT STDMETHODCALLTYPE
  44.         ReInitialize();
  45.     virtual HRESULT STDMETHODCALLTYPE
  46.         AllPrimes(SAFEARRAY ** ai);
  47. private:
  48.     short * m_af;           // Array of flags
  49.     int     m_iCur;         // Current index
  50.     short   m_iMaxPrime;    // Maximum index
  51.     short   m_cPrime;       // Count of primes
  52. };
  53.